package com.hsjk.szwj.module.smedia.dal.dataobject.production;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * 修改云剪辑工程，支持修改标题、时间线和封面等 Request DTO
 */
@Data
public class UpdateEditingProjectReqDTO {
    /**
     * 云剪辑工程标题
     */
    @JsonProperty("Title")
    private String title;

    /**
     * 云剪辑工程描述
     */
    @JsonProperty("Description")
    private String description;

    /**
     * 云剪辑工程时间线，Json格式
     */
    @JsonProperty("Timeline")
    private String timeline;

    /**
     * 模板Id，用于快速低门槛的构建时间线。注：ProjectId、Timeline、TemplateId有且只有一个非空。当TemplateId不为空时，ClipsParam不能为空。
     */
    @JsonProperty("TemplateId")
    private String templateId;

    /**
     * 模板对应的素材参数，Json格式，当TemplateId不为空时，ClipsParam不能为空。具体格式见 普通模板创建及使用、高级模板创建及使用。
     */
    @JsonProperty("ClipsParam")
    private String clipsParam;

    /**
     * 云剪辑工程封面。如果为空且时间线上的video轨已经存在素材，则默认选取时间线上第一个素材封面。
     */
    @JsonProperty("CoverURL")
    private String coverURL;

    /**
     * 云剪辑工程ID
     */
    @JsonProperty("ProjectId")
    @NotBlank(message = "云剪辑工程ID不能为空")
    private String projectId;

    /**
     * 工程业务状态，一般剪辑工程可忽略。支持修改工程的预约状态：
     *
     * Reserving: 预约中
     * ReservationCanceled: 预约取消
     */
    @JsonProperty("BusinessStatus")
    private String businessStatus;
}
